using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;

namespace FunctionInterface
{
	public delegate void OutputMessageEventHandler(object sender, OutputMessageEventArgs e);
	public delegate void ProcessChangedEvnetHandler(object sender, ProcessChangedEvnetArgs e);
	
	public class OutputMessageEventArgs : EventArgs
	{
		public string Message {get; set;}
		
		public override string ToString ()
		{
			return Message;
		}
		
		public MessageType MessageType {get; set;}
		
		public OutputMessageEventArgs() : base()
		{
			MessageType = MessageType.StringMessage;
		}
		
		public OutputMessageEventArgs(string message) : base()
		{
			Message = message;
			MessageType = MessageType.StringMessage;
		}
		
		public OutputMessageEventArgs(string message, MessageType messageType) : base()
		{
			Message = message;
			MessageType = messageType;
		}
	}
	
	public class ProcessChangedEvnetArgs : EventArgs
	{
		public IProcessCommand CurProcessCommand {get; set;}
	}
	
	public enum MessageType
	{
		StringMessage,
		CommandMessage,
		ListMessage,
		TableMessage,
		ImageMessage,
		TextMessage
	}
}

